package com.enjoyor.soa.traffic.api.service.dubbo.vcsp;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @ClassName: DubboFileManageService
 * @Description: 车管所文件转存-中心服务-文件管理
 * @author: ly
 * @date: 2019年2月21日 上午11:29:11
 */
public interface DubboFileManageService {

    /**
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @param serial_id          流水编号
     * @param proxy_id           代理服务编号
     * @param start_time         开始时间
     * @param end_time           结束时间
     * @return
     * @Title: getVehicleSerialList
     * @Description: 获取车辆流水列表
     * @return: ResultPojo
     */
    public ResultPojo getVehicleSerialList(String systemKey, String token, String vehicle_plate,
                                           String vehicle_plate_type,
                                           String serial_id,
                                           String proxy_id, String proxy_name, String proxy_ip,
                                           String start_time,
                                           String end_time);

    /**
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @param serial_id          流水编号
     * @param proxy_id           代理服务编号
     * @param start_time         开始时间
     * @param end_time           结束时间
     * @param page               分页
     * @return
     * @Title: getVehicleSerialPage
     * @Description: 获取车辆流水分页列表
     * @return: ResultPojo
     */
    public ResultPojo getVehicleSerialPage(String systemKey, String token, String vehicle_plate,
                                           String vehicle_plate_type,
                                           String serial_id,
                                           String proxy_id, String proxy_name, String proxy_ip,
                                           String start_time,
                                           String end_time,
                                           Page page);

    /**
     * @param serial_id          流水号
     * @param proxy_id           代理服务器编号
     * @param proxy_name         代理服务器名
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @return
     * @Title: insertVehicleSerialinfo
     * @Description: 新增车辆流水信息
     * @return: ResultPojo
     */
    public ResultPojo insertVehicleSerialinfo(String systemKey, String token, String serial_id,
                                              String proxy_id,
                                              String proxy_name,
                                              String vehicle_plate,
                                              String vehicle_plate_type);

    /**
     * @param serial_id          流水号
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @return
     * @Title: updateVehicleSerialinfo
     * @Description: 更新车辆流水
     * @return: ResultPojo
     */
    public ResultPojo updateVehicleSerialinfo(String systemKey, String token, String serial_id, String proxy_id, String vehicle_plate, String vehicle_plate_type, String record_time);

    /**
     * @param serial_id 流水号
     * @return
     * @Title: deleteVehicleSerialinfo
     * @Description: 删除车辆流水
     * @return: ResultPojo
     */
    public ResultPojo deleteVehicleSerialinfo(String systemKey, String token, String serial_id);


    /**
     * @param serial_id          流水号
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @return
     * @Title: getFileList
     * @Description: 获取文件列表
     * @return: ResultPojo
     */
    public ResultPojo getFileList(String systemKey, String token, String serial_id,
                                  String vehicle_plate,
                                  String vehicle_plate_type);

    /**
     * @param serial_id          流水号
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @param page
     * @return
     * @Title: getFilePage
     * @Description: 获取文件分页列表
     * @return: ResultPojo
     */
    public ResultPojo getFilePage(String systemKey, String token, String serial_id,
                                  String vehicle_plate,
                                  String vehicle_plate_type,
                                  Page page);

    /**
     * @param proxy_id
     * @return
     */
    public ResultPojo statOverdueFile(String systemKey, String token, String proxy_id);

    /**
     * @param file_id            文件编号
     * @param file_name          文件名
     * @param serial_id          流水号
     * @param file_path          文件路径
     * @param file_status        文件状态
     * @param proxy_id           代理编号
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @param file_size          文件大小
     * @return
     * @Title: insertFileinfo
     * @Description: 新增文件
     * @return: ResultPojo
     */
    public ResultPojo insertFileinfo(String systemKey, String token, String file_id,
                                     String file_name,
                                     String serial_id,
                                     String file_path,
                                     String file_status,
                                     String proxy_id,
                                     String vehicle_plate,
                                     String vehicle_plate_type,
                                     long file_size);

    /**
     * @param file_id            文件编号
     * @param vehicle_plate      号牌号码
     * @param vehicle_plate_type 号牌类型
     * @param file_status        文件状态
     * @return
     * @Title: updateFileinfo
     * @Description: 更新文件
     * @return: ResultPojo
     */
    public ResultPojo updateFileinfo(String systemKey, String token, String file_id,
                                     String proxy_id, String vehicle_plate,
                                     String vehicle_plate_type, String record_time,
                                     String file_status);

    /**
     * @param file_id 文件编号
     * @return
     * @Title: deleteFileinfo
     * @Description: 删除文件
     * @return: ResultPojo
     */
    public ResultPojo deleteFileinfo(String systemKey, String token, String file_id);

    /**
     * @param file_id 文件编号
     * @return
     * @Title: signDeleteFileinfo
     * @Description: 标记删除文件
     * @return: ResultPojo
     */
    public ResultPojo signDeleteFileinfo(String systemKey, String token, String file_id);

}
